import {EntityId, PageQueryParams} from "kf-web-library";
import {FrontJournalPeriod, Journal_Summary, JournalColumn_Summary, JournalPeriod_Summary, JournalSpecialTopic_Summary} from "@/services";


export interface FrontArticlePageQueryParams extends Partial<PageQueryParams> {
  ids?: EntityId[];
  journalId?: EntityId;   //期刊ID
  periodId?: EntityId;    //刊期ID
  columnId?: EntityId;    //栏目ID
  specialTopicId?: EntityId;    //专题ID
  hotType?: string;    //热点类型 HotType

  periodZ?: boolean; //是否首发
}

export interface FrontArticleChartsEsPageQueryParams extends FrontArticleEsPageQueryParams {

}

export interface FrontArticleVideoEsPageQueryParams extends FrontArticleEsPageQueryParams {

}

export interface FrontArticleEsPageQueryParams extends Partial<PageQueryParams> {
  searchText?: string;
  ids?: EntityId[];
  bizAuthorIds?: string  | string[];
  journalNameCns?: string[];
  journalNameEns?: string[];
  publicationYears?: number[];
  articleTypes?: string[];
  adviseTypes?: string[];
  journalIds?: EntityId[];
  periodIds?: EntityId[];
  columnIds?: EntityId[];
  specialTopicIds?: EntityId[];
  esOrderType?: EntityId;  //排序方式 EsOrderType

  periodZ?: boolean; //是否首发
}

export interface FrontRecommendArticlePageQueryParams extends Partial<PageQueryParams> {

}

export interface FrontArticle {
  _seq_: number;
  id: string; //文章ID
  type: string; //文章类型
  name: string; //名称
  journalId: string; //期刊ID
  journalName: string; //期刊名称
  journal: Journal_Summary; //所属期刊
  columnId: number; //文章栏目ID
  columnName: string; //文章栏目名称
  periodId: number; //期ID
  periodName: string; //期名称
  specialTopicId: number; //专题ID
  specialTopicName: string; //专题名称
  catalogId: number; //目次ID
  articleYear: number; //年
  articleVolume: string; //卷
  articlePeriod: string; //期
  articleStartpage: string; //起始页
  articleEndpage: string; //结束页
  articleDoi: string; //DOI
  articleNumber: string; //稿件编号
  articleClassificationNumber: string; //分类号
  articlePacc: string; //PACC号
  articleReceivedDate: string; //收稿日期
  articleRevisedDate: string; //修回日期
  articleUploadDate: string; //上传系统日期
  articlePublishedDate: string; //发布日期
  articleReleaseDate: string; //系统中发布日期
  articleModifyDate: string; //最后修改日期
  articleTitleCn: string; //中文标题
  articleTitleEn: string; //英文标题
  articleAbstractCn: string; //中文摘要
  articleAbstractEn: string; //英文摘要
  articleKeywordCn: string; //中文关键词
  articleKeywordEn: string; //英文关键词
  articleReferenceCn: string; //中文参考文献
  articleReferenceEn: string; //英文参考文献
  articleAuthorCn: string; //中文作者名称
  articleAuthorEn: string; //英文作者名称
  articleAuthorAddressCn: string; //中文作者地址信息
  articleAuthorAddressEn: string; //英文作者地址信息
  articleAuthorAddressTag: string; //文章作者地址标签
  articleFundprojectCn: string; //中文基金项目
  articleFundprojectEn: string; //英文基金项目
  articleCoFirstAuthorCn: string; //中文共同一作名称
  articleCoFirstAuthorEn: string; //英文共同一作名称
  articleCoFirstAuthorInfoCn: string; //中文共同一作说明
  aritlceCoFirstAuthorInfoEn: string; //英文共同一作说明
  articleCommunicationAuthorCn: string; //中文通讯作者名称
  articleCommunicationAuthorEn: string; //英文通讯作者名称
  articleCommunicationAuthorIntroductionCn: string; //中文通讯作者简介
  articleCommunicationAuthorIntroductionEn: string; //英文通讯作者简介
  articleCommunicationAuthorEmail: string; //通讯作者邮箱
  articleReleaseState: number; //文章系统中发布状态
  articleState: number; //文章期刊状态（最新录用、一校...）
  articleHotState: number; //是否热点文章
  articleSortState: number; //文章显示排序
  articleDisciplineCn: string; //学科中文名称
  articleDisciplineEn: string; //学科英文名称
  articleDisciplineGradeTwoCn: string; //二级学科中文名称
  articleDisciplineGradeTwoEn: string; //二级学科英文名称
  articleAuthorResolveState: number; //文章作者结构化解析状态
  articleReferenceCnResolveState: number; //文章中文参考文献结构化解析状态
  articleReferenceEnResolveState: number; //文章英文参考文献结构化解析状态
  articleReferenceCnDoiResolveState: number; //文章中文参考文献DOI解析状态
  articleReferenceEnDoiResolveState: number; //文章英文参考文献DOI解析状态
  articlePageturn: string; //文章转页
  articleUrl: string; //文章链接
  articleFullText: string; //全文内容
  articleFigureText: string; //图表内容
  articleFigureNum: number; //图数
  articleTableNum: number; //表数
  articleImageName: string; //文章图片名称
  articleImagePath: string; //文章图片路径
  articleImageSize: string; //文章图片大小
  articleLanguage: string; //文章语言类别
  articleRemark: string; //备注
  articleAuthorIntroductionCn: string; //作者中文简介
  articleAuthorIntroductionEn: string; //作者英文简介
  articleAuthorCorporateUnitCn: string; //作者法人单位中文
  articleAuthorCorporateUnitEn: string; //作者法人单位英文
  articleAuthorSecondaryCollegesCn: string; //作者二级学院中文
  articleAuthorSecondaryCollegesEn: string; //作者二级学院英文
  articleAuthorLabCn: string; //作者实验室中文
  articleAuthorLabEn: string; //作者实验室英文
  articleRecommendState: number; //是否推荐文章
  articleAbstractCnNum: number; //中文摘要访问数
  articleAbstractEnNum: number; //英文摘要访问数
  articleHtmlCnNum: number; //中文HTML访问数
  articleHtmlEnNum: number; //英文HTML访问数
  articlePdfCnNum: number; //中文PDF下载数
  articlePdfEnNum: number; //英文文PDF下载数
  articleVirtualAlbumState: number; //是否假如虚拟专辑
  virtualAlbumId: number; //虚拟专辑ID
  articleType1: string; //类型1
  articleType2: string; //类型2
  articleType3: string; //类型3
  articleType4: string; //类型4
  articleType5: string; //类型5
  articleReferenceCnNum: number; //文章中文参考文献数目
  articleReferenceEnNum: number; //文章英文参考文献数目
  virtualAlbumIds: string; //虚拟专辑ids
  articlePrice: number; //文章单价
  articleHtmlPrice: number; //HTM价格
  articlePdfPrice: number; //PDF价格
  articleSetMealPrice: number; //PDF+HTML套餐价格
  articleHtmlState: number; //HTM全文状态
  articlePdfState: number; //PDF全文状态
  articleShowTypeColume: number; //显示栏目位置类型
  articleDeleteFlag: number; //${column.comment}
  articlePdfSize: string; //PDF文件大小
  articleXmlName: string; //文章XML名称
  articleXmlPath: string; //文章XML路径
  articleXmlSize: string; //文章XML大小
  articleXmlDownNum: number; //XML下载数
  articleLatestState: number; //当前状态
  articleRevRecdDate: string; //${column.comment}
  typeInfoId: number; //${column.comment}
  disciplineId: number; //学科ID
  authorNotesCn: string; //作者注释
  authorNotesEn: string; //作者注释
  articlePublisherId: string; //文章文件id
  articleColumnNameCn: string; //中文分类名称
  articleColumnNameEn: string; //英文分类名称
  originid: string; //ERP标识ID
  articleDoiRegState: number; //文章doi注册状态
  citedState: number; //是否已经推送到被引库状态
  articleSort: number; //文章排序值
  subTitleCn: string; //中文副标题
  subTitleEn: string; //英文副标题
  hotArticle: boolean; //是否热文
  downloadNum: number; //下载数
  citingArticleNum: number; //被引用数量
  citedReferencesNum: number; //引用数量
  accessNum: number; //访问数
  createTime: string; //创建时间
  createUserId: number; //${column.comment}
  modifyTime: string; //修改时间
  modifyUserId: number; //${column.comment}

  hitsnum: number; //点击数量
  sharenum: number; //转发数量
  likesnum: number; //点赞数量
  collectionnum: number; //收藏数量
  haslikes: boolean; //是否被当前用户点赞
  hascollection: boolean; //是否被当前用户收藏

  publishedYear: number; //发布年
  adviseTypeAggs: string[]; //推荐分类


  articleImageUrl?: string;
  articleHtmlUrlCn?: string;
  articleHtmlUrlEn?: string;
  articleXmlUrlCn?: string;
  articleXmlUrlEn?: string;
  articlePdfUrlCn?: string;
  articlePdfUrlEn?: string;
  articleUrlPrefix?: string;

  articleXmlUrl?: string;
  articlePdfUrl?: string;
  urlPrefix?: string;
  imgUrlPrefix?: string;

  attachmentFigure?: ArticleBizFigure[],


  figureTableId: string;
  figureTableCoverUrl: string;
  figureTableUrl: string;

  videoId: string;
  videoCoverUrl: string;
  videoUrl: string;

  journalNameCn: string;
  journalNameEn: string;

  attachmentVideo: ArticleFile[];
  period: FrontJournalPeriod;
}

export interface ArticleFile{
  articleId: string; //文章id
  fileType: string; //文件类型
  fileName: string; //文件名
  fileCoverUrl: string; //文件缩略图
  fileUrl: string; //文件地址
  seq: number; //排序号
}


export interface FrontArticleEs_Detail {
  id: string; //文章ID
  type: string; //文章类型   ArticleType
  name: string; //名称
  journal: Journal_Summary; //所属期刊
  column: JournalColumn_Summary; //文章栏目
  period: JournalPeriod_Summary; //期
  specialTopic: JournalSpecialTopic_Summary; //专题
  catalogId: number; //目次ID
  articleYear: number; //年
  articleVolume: string; //卷
  articlePeriod: string; //期
  articleStartpage: string; //起始页
  articleEndpage: string; //结束页
  articleDoi: string; //DOI
  articleNumber: string; //稿件编号
  articleClassificationNumber: string; //分类号
  articlePacc: string; //PACC号
  articleReceivedDate: string; //收稿日期
  articleRevisedDate: string; //修回日期
  articleUploadDate: string; //上传系统日期
  articlePublishedDate: string; //发布日期
  articleReleaseDate: string; //系统中发布日期
  articleModifyDate: string; //最后修改日期
  articleTitleCn: string; //中文标题
  articleTitleEn: string; //英文标题
  articleAbstractCn: string; //中文摘要
  articleAbstractEn: string; //英文摘要
  articleKeywordCn: string; //中文关键词
  articleKeywordEn: string; //英文关键词
  articleReferenceCn: string; //中文参考文献
  articleReferenceEn: string; //英文参考文献
  articleAuthorCn: string; //中文作者名称
  articleAuthorEn: string; //英文作者名称
  articleAuthorAddressCn: string; //中文作者地址信息
  articleAuthorAddressEn: string; //英文作者地址信息
  articleAuthorAddressTag: string; //文章作者地址标签
  articleFundprojectCn: string; //中文基金项目
  articleFundprojectEn: string; //英文基金项目
  articleCoFirstAuthorCn: string; //中文共同一作名称
  articleCoFirstAuthorEn: string; //英文共同一作名称
  articleCoFirstAuthorInfoCn: string; //中文共同一作说明
  aritlceCoFirstAuthorInfoEn: string; //英文共同一作说明
  articleCommunicationAuthorCn: string; //中文通讯作者名称
  articleCommunicationAuthorEn: string; //英文通讯作者名称
  articleCommunicationAuthorIntroductionCn: string; //中文通讯作者简介
  articleCommunicationAuthorIntroductionEn: string; //英文通讯作者简介
  articleCommunicationAuthorEmail: string; //通讯作者邮箱
  articleReleaseState: number; //文章系统中发布状态
  articleState: number; //文章期刊状态（最新录用、一校...）
  articleHotState: number; //是否热点文章
  articleSortState: number; //文章显示排序
  articleDisciplineCn: string; //学科中文名称
  articleDisciplineEn: string; //学科英文名称
  articleDisciplineGradeTwoCn: string; //二级学科中文名称
  articleDisciplineGradeTwoEn: string; //二级学科英文名称
  articleAuthorResolveState: number; //文章作者结构化解析状态
  articleReferenceCnResolveState: number; //文章中文参考文献结构化解析状态
  articleReferenceEnResolveState: number; //文章英文参考文献结构化解析状态
  articleReferenceCnDoiResolveState: number; //文章中文参考文献DOI解析状态
  articleReferenceEnDoiResolveState: number; //文章英文参考文献DOI解析状态
  articlePageturn: string; //文章转页
  articleUrl: string; //文章链接
  articleFullText: string; //全文内容
  articleFigureText: string; //图表内容
  articleFigureNum: number; //图数
  articleTableNum: number; //表数
  articleImageName: string; //文章图片名称
  articleImagePath: string; //文章图片路径
  articleImageSize: string; //文章图片大小
  articleLanguage: string; //文章语言类别
  articleRemark: string; //备注
  articleAuthorIntroductionCn: string; //作者中文简介
  articleAuthorIntroductionEn: string; //作者英文简介
  articleAuthorCorporateUnitCn: string; //作者法人单位中文
  articleAuthorCorporateUnitEn: string; //作者法人单位英文
  articleAuthorSecondaryCollegesCn: string; //作者二级学院中文
  articleAuthorSecondaryCollegesEn: string; //作者二级学院英文
  articleAuthorLabCn: string; //作者实验室中文
  articleAuthorLabEn: string; //作者实验室英文
  articleRecommendState: number; //是否推荐文章
  articleAbstractCnNum: number; //中文摘要访问数
  articleAbstractEnNum: number; //英文摘要访问数
  articleHtmlCnNum: number; //中文HTML访问数
  articleHtmlEnNum: number; //英文HTML访问数
  articlePdfCnNum: number; //中文PDF下载数
  articlePdfEnNum: number; //英文文PDF下载数
  articleVirtualAlbumState: number; //是否假如虚拟专辑
  virtualAlbumId: number; //虚拟专辑ID
  articleType1: string; //类型1
  articleType2: string; //类型2
  articleType3: string; //类型3
  articleType4: string; //类型4
  articleType5: string; //类型5
  articleReferenceCnNum: number; //文章中文参考文献数目
  articleReferenceEnNum: number; //文章英文参考文献数目
  virtualAlbumIds: string; //虚拟专辑ids
  articlePrice: number; //文章单价
  articleHtmlPrice: number; //HTM价格
  articlePdfPrice: number; //PDF价格
  articleSetMealPrice: number; //PDF+HTML套餐价格
  articleHtmlState: number; //HTM全文状态
  articlePdfState: number; //PDF全文状态
  articleShowTypeColume: number; //显示栏目位置类型
  articleDeleteFlag: number; //${column.comment}
  articlePdfSize: string; //PDF文件大小
  articleXmlName: string; //文章XML名称
  articleXmlPath: string; //文章XML路径
  articleXmlSize: string; //文章XML大小
  articleXmlDownNum: number; //XML下载数
  articleLatestState: number; //当前状态
  articleRevRecdDate: string; //${column.comment}
  typeInfoId: number; //${column.comment}
  disciplineId: number; //学科ID
  authorNotesCn: string; //作者注释
  authorNotesEn: string; //作者注释
  articlePublisherId: string; //文章文件id
  articleColumnNameCn: string; //中文分类名称
  articleColumnNameEn: string; //英文分类名称
  originid: string; //ERP标识ID
  articleDoiRegState: number; //文章doi注册状态
  citedState: number; //是否已经推送到被引库状态
  articleSort: number; //文章排序值
  subTitleCn: string; //中文副标题
  subTitleEn: string; //英文副标题
  hotArticle: boolean; //是否热文
  downloadNum: number; //下载数
  citingArticleNum: number; //被引用数量
  citedReferencesNum: number; //引用数量
  accessNum: number; //访问数
  createTime: string; //创建时间
  createUserId: number; //${column.comment}
  modifyTime: string; //修改时间
  modifyUserId: number; //${column.comment}
  hitsnum: number; //点击数量
  sharenum: number; //转发数量
  likesnum: number; //点赞数量
  collectionnum: number; //收藏数量
  haslikes: boolean; //是否被当前用户点赞
  hascollection: boolean; //是否被当前用户收藏
  publishedYear: number; //发布年
}


export interface FrontArticle_Summary {
  id: EntityId; //文章ID
  languageType: string; //语言类型
  types: string[]; //文章类型
  name: string; //名称
  articleTitleCn: string; //中文标题
  articleTitleEn: string; //英文标题
  articleKeywordCn: string; //中文关键词
  articleKeywordEn: string; //英文关键词
  articleAuthorCn: string; //中文作者名称
  articleAuthorEn: string; //英文作者名称
  articleAbstractCn: string; //中文摘要
  articleAbstractEn: string; //英文摘要

}


/*[
  {
    "articleId": "61463",
    "citedByArticles": [
      {
        "articleType": "journal",
        "authors": "李天天",
        "citiation": "李天天. AI大模型在卫生健康行业的应用探索[J]. 中国网信. 2025(05) :72-74 .",
        "fpage": "72",
        "issue": "5",
        "journal": "中国网信",
        "title": "AI大模型在卫生健康行业的应用探索",
        "visitUri": "https://kns.cnki.net/kcms/detail/detail.aspx?dbcode\u003dCJFD\u0026filename\u003dWLCB202505016\u0026dbname\u003dCJFDLAST2025",
        "year": "2025"
      }
    ],
    "citedCount": 1,
    "citedId": "67877adf8699ca6f38edd1a5",
    "dbSourcedbSource": "cnki",
    "doi": "10.7507/1007-4848.202407041"
  }
]*/
export interface ArticlesCitedInfo {
  articleId: string;
  citedCount: number;
  citedId: string;
  dbSourcedbSource: string;
  doi: string;
  citedByArticles: ArticleCited[];
}

export interface ArticleCited {
  articleType: string;
  authors: string;
  citiation: string;
  fpage: string;
  issue: string;
  journal: string;
  title: string;
  visitUri: string;
  year: string;
}


export interface ArticleBizFigure{
  id: number; //id
  articleId: string; //文章id
  seq: number; //序号
  figureId: string; //图片ID
  figcaption: string; //图片名称
  imgUrl: string; //图片地址
  createTime: string; //创建时间
  modifyTime: string; //修改时间
  createUserId: number; //${column.comment}
  modifyUserId: number; //${column.comment}
}

